User interface for managing a distributed virtual switch

ABSTRACT

A user interface for managing allocations of network resources in a virtualized computing environment provides a graphical overview of the virtual computing environment that allows the user to visualize the virtual network, including the connections between the virtual network adapters and the uplink port groups that provide physical network resources for the virtual machines included in the virtualized computing environment. The user interface also provides graphical elements that allow the user to modify the virtual network, to migrate virtual machines from individual virtual switches to a distributed virtual switch, and/or to modify the arrangement of physical network adapters that provide network backing for the virtual machines. By providing these features, the user interface according to one or more embodiments of the present invention can allow the user to efficiently and safely manage the virtual network in the virtual computing environment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. provisional patent applicationSer. No. 61/334,214, filed on May 13, 2010, the entire contents of whichare incorporated by reference herein.

BACKGROUND

Computer virtualization is a technique that involves encapsulating aphysical computing machine platform into a virtual machine that isexecuted under the control of virtualization software running on asingle hardware computing platform (also referred to herein as “hostsystem” or “host computer”). A group of hardware computing platforms maybe organized as a cluster to provide the hardware resources for virtualmachines. In a data center that employs virtual machines, it is commonto see hundreds, even thousands, of virtual machines running on multipleclusters of host systems.

A virtualization management software is used by an administrator tomanage the configuration of the virtual machines and the allocation ofcomputing resources to the virtual machines. Because of the large numberof virtual machines to be managed within a single data center, andsometimes, across multiple data centers, some of the administrator'stasks are automated. For example, software automated techniques such asdynamic resource scheduling and dynamic power management have beendeveloped to assist the administrator in balancing workloads across hostsystems and powering host systems ON and OFF as needed.

One feature of the virtualized computing environment that is controlledby the virtualization management software is virtual networking. Eachvirtual machine includes a software-based virtual network adapter thatis logically connected to a physical network adapter included in a hostcomputer that provides network access for the virtual machine. Thevirtual network adapter is connected to the physical network adapterthrough a software-based “switch.” However, when a large number ofvirtual machines is included in the virtual computing environment,managing the virtual network connections can become time consuming anderror prone for the administrator.

Accordingly, there remains a need in the art for a user interface formanaging a virtualized computing environment that addresses thedrawbacks and limitations discussed above.

SUMMARY

One or more embodiments of the invention provide a user interface formanaging allocations of network resources in a virtualized computingenvironment. The user interface provides a graphical overview of thevirtual computing environment that allows the user to visualize thevirtual network, including the connections between the virtual networkadapters and the uplink port groups that provide physical networkresources for the virtual machines included in the virtualized computingenvironment. The user interface also provides graphical elements thatallow the user to modify the virtual network, to migrate virtualmachines from individual virtual switches to a distributed virtualswitch, and/or to modify the arrangement of physical network adaptersthat provide network backing for the virtual machines. By providingthese features, the user interface according to one or more embodimentsof the present invention can allow the user to efficiently and safelymanage the virtual network in the virtual computing environment.

One embodiment provides a technique for managing networking resources ina virtualized computing environment that includes associating one ormore uplink port groups with a distributed virtual switch that islogically connected to two or more host computers; associating one ormore physical network adapters included in the two or more hostcomputers with each of the one or more uplink port groups; andestablishing a logical connection between one or more virtual machinesexecuting on the two or more host computers and the one or more uplinkport groups.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A depicts a block diagram of a virtualized computer system inwhich one or more embodiments of the present invention may be practiced.

FIG. 1B depicts a block diagram of a host computer and virtual machine(VM) management center, according to one embodiment of the invention.

FIG. 2 depicts a networking architecture that includes multiple virtualswitches, according to one embodiment of the invention.

FIG. 3 depicts a networking architecture that includes a distributedvirtual switch, according to one embodiment of the invention.

FIG. 4 depicts a user interface for managing a distributed virtualswitch (DVS), according to one embodiment of the invention.

FIG. 5 is a screenshot of a user interface for managing the physicalNetwork Interface Cards (NICs) associated with each of one or moreuplinks, according to one embodiment of the invention.

FIG. 6 is a screenshot of a user interface for the physical NICsassociated with each of one or more uplinks organized by host computer,according to one embodiment of the invention.

FIG. 7 is a screenshot of a user interface for managing a DVS thatincludes the status of the various VMs connected to the DVS switch,according to one embodiment of the invention.

FIG. 8A is a screenshot of a user interface for migrating VMs fromindividual virtual switches to a DVS, according to one embodiment of theinvention.

FIG. 8B is a screenshot of a dialog box for migrating VMs fromindividual virtual switches to a DVS, according to one embodiment of theinvention.

FIG. 9 is a screenshot of user interface that displays policyinheritance, according to one embodiment of the invention.

FIG. 10 is a flow diagram of method steps for creating a DVS, accordingto one embodiment of the invention.

FIG. 11 is a flow diagram of method steps for bulk migration of VMs fromindividual switches to a DVS, according to one embodiment of theinvention.

FIG. 12 is a flow diagram of method steps for displaying a graphicalview of the DVS, according to one embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1A depicts a block diagram of a virtualized computer system 100 inwhich one or more embodiments of the present invention may be practiced.Host computers 104 (also referred to herein as “servers”) are configuredto deliver virtualization-based distributed services to informationtechnology environments. Each host computer 104 provides avirtualization layer that abstracts processor, memory, storage, and/ornetworking resources into multiple virtual machines that runside-by-side on the same physical host computer 104. In one embodiment,virtualization software can be installed directly on the server hardwareand inserts a virtualization layer between the hardware and theoperating system. The virtualization software partitions a physical hostcomputer 104 into multiple secure and portable virtual machines that runon the same physical server. Each virtual machine represents a completesystem—with processors, memory, networking, storage, and/or BIOS.

A virtual machine (VM) management center 102 is also included in thesystem 100. The VM management center 102 manages the virtualinfrastructure, including managing the host computers 104, the virtualmachines running within each host computer 104, provisioning, migration,resource allocations, and so on.

According to various embodiments, implementing a virtualized systemsimplifies management with a management application, such as the VirtualInfrastructure (VI) Client 106, that can be used to perform tasks. Eachserver configuration task, such as configuring storage and networkconnections or managing the service console, can be accomplishedcentrally through the VI Client 106. One embodiment provides astand-alone application version of the VI Client 106. In anotherembodiment, a web browser application 108 provides virtual machinemanagement access from any networked device. For example, with thebrowser version of the client 108, giving a user access to a virtualmachine can be as simple as providing a URL (Uniform Resource Locator)to the user.

According to some embodiments, user access controls of the VM managementcenter 102 provide customizable roles and permissions so anadministrator can create roles for various users by selecting from anextensive list of permissions to grant to each role. Responsibilitiesfor specific virtualized infrastructure components, such as resourcepools, can be delegated based on business organization or ownership. VMmanagement center 102 can also provide full audit tracking to provide adetailed record of every action and operation performed on the virtualinfrastructure. As described in greater detail herein, embodiments ofthe invention provide a user interface for the VI Client 106 that allowsa user to manage a distributed virtual switch (DVS).

FIG. 1B depicts a block diagram of a host computer 104 and VM managementcenter 102, according to one embodiment of the invention. A virtualizedenvironment includes a host computer 104 that has conventionalcomponents of a computing device, and may be implemented within acluster of computing devices. One or more virtual machines areconfigured within the host computer 104, represented in FIG. 1B as VM121, VM 122, and VM 123, that share hardware resources of host computer104, such as system memory 112, processor 114, disk interface 116, andnetwork interface 118. Examples of disk interface 116 are a host busadapter and a network file system interface. An example of networkinterface 118 is a network adapter, also referred to as a NetworkInterface Card (NIC). In some embodiments, a plurality of NICs isincluded in the network interface 118.

The virtual machines VM 121-123 run on top of a virtual machine monitor125, which is a software interface layer that enables sharing of thehardware resources of host computer 104 by the virtual machines. Virtualmachine monitor 125 may run on top of the operating system of the hostcomputer 104 or directly on hardware components of the host computer104. In some embodiments, virtual machine monitor 125 runs on top of ahypervisor that is installed on top of the hardware resources of hostcomputer 104. Together, the virtual machines 121-123 and virtual machinemonitor 125 create virtualized computer systems that give the appearanceof being distinct from host computer 104 and from each other. Eachvirtual machine includes a guest operating system and one or more guestapplications. The guest operating system is a master control program ofthe virtual machine and, among other things, the guest operating systemforms a software platform on top of which the guest applications run.

In one embodiment, data storage for host computer 104 is served by astorage area network (SAN) (not shown), which includes a storage array(e.g., a disk array) and a switch (SAN fabric) that connects hostcomputer 104 to storage array 160 via the disk interface 116. Invirtualized computer systems, in which disk images of virtual machinesare stored in the storage arrays, disk images of virtual machines can bemigrated between storage arrays as a way to balance the loads across thestorage arrays. For example, the Storage VMotion™ product that isavailable from VMware Inc. of Palo Alto, Calif. allows disk images ofvirtual machines to be migrated between storage arrays withoutinterrupting the virtual machine whose disk image is being migrated orany applications running inside it. In other embodiments, anytechnically feasible data storage implementation, other than a SAN, canbe used to provide storage resources for host computer 104.

FIG. 2 depicts a networking architecture 200 that includes multiplevirtual switches 204-1, 204-2, according to one embodiment of theinvention. As shown, VMs 202-1, 202-2 are logically connected to avirtual switch, or “vSwitch,” 204-1, which is, in turn, logicallyconnected to a physical network interface card (pNIC) 206-1 included ina host computer. Similarly, VMs 202-3, 202-4, 202-5 are logicallyconnected to vSwitch 204-2, which is, in turn, logically connected topNIC 206-2 included in a host computer. In one embodiment, pNICs 206-1and 206-2 are included in the same host computer. In another embodiment,pNICs 206-1 and 206-2 are included in different host computers. ThepNICs 206-1, 206-2 can communicate with one another and with the outsideworld via router or switch 208.

Virtual switches 204-1, 204-2 are software-based devices that exist inthe virtual machine kernel on the respective host computer. A virtualswitch is a software construct of a physical switch that allows multipleentities, such as VMs to communicate with each other and the outsideworld using a single physical network connection.

Many configuration options exist for virtual switches. A user, such asan administrator, can assign virtual local area networks (VLANs),security profiles, and/or limit the amount of traffic that virtualmachines can generate. Additionally, the user can assign multiplephysical NICs from the host computer to a virtual switch for loadbalancing and fault tolerance. As described, each host computer caninclude one or more NICs, also called “network adapters” or “uplinkadapters.”

As described, the VMs connect to virtual switches. The virtual switches,in turn, connect to physical NICs in the host computers. The physicalNICs connect to the physical network. Virtual switches can have manysimilarities with physical switches. For example, virtual switchesinclude varying number of ports to connect to VMs, offer support forVLANs, can have varying port speeds, and/or can offer security policies.

In some embodiments, virtual switches perform three different functionsfor a host computer, including (1) virtual machine connection, (2) VMkernel connection, and (3) a service console. Each of these functions isconsidered a different connection type or port.

Virtual machine ports connect the VMs with each other and the outsideworld. Each VM connects to a port on one or more virtual switches. Anyphysical NICs that are assigned to the virtual switch provide a bridgeto the physical network. VM kernel ports connect the VMs to variousservices, such as networking services, IP (Internet Protocol) storageservices, Internet Small Computer System Interface (iSCSI) services, anddisk image migrations. The service console port provides access to hostcomputer management services. A VI client can connect to the serviceconsole to configure and manage the host computer.

However, several problems arise when using multiple virtual switches, asshown in FIG. 2. One limitation of using multiple virtual switches isthat each host computer has to be individually configured to have theproper network settings for VMs to communicate across host computers.For example, if a VM is connected to a first vSwitch coupled to a firsthost computer, the VM cannot be migrated to a second vSwitch coupled toa second host computer unless the first and second host computers haveidentical network settings. In one embodiment, configuring a vSwitchincludes associating a virtual NIC included in a VM with one or morephysical NICs included in the host computer. Typically, this processwould need to be performed for each VM. When managing multiple and/orlarge networks, maintaining identical network settings across many hostcomputer can be time consuming, tedious, and error prone.

Accordingly, embodiments of the invention provide for a distributedvirtual switch that is coupled to multiple host computers. FIG. 3depicts a networking architecture 300 that includes a distributedvirtual switch 304, according to one embodiment of the invention. Asshown, VMs 302-1, 302-2, 302-3, 302-4, 302-5 are each coupled to thedistributed virtual switch (DVS) 304. The DVS 304 is coupled to pNICs306-1, 306-2 included in one or more host computers. The pNICs 306-1,306-2 are coupled to a router or switch 308. The DVS 304 can be alsoreferred to as a “vNetwork distributed switch” or a “vSphere distributedswitch.”

In some embodiments, a DVS 304, as shown in FIG. 3, is simpler for auser to manage than multiple individual and segregated virtual switches,as shown in FIG. 2. For example, the user can interact with a userinterface provided by the VI client 106 to configure the DVS 304. TheDVS 304 maintains network runtime state for VMs as they move acrossmultiple hosts, enabling inline monitoring and centralized firewallservices. The DVS 304 also provides a framework for monitoring andmaintaining the security of the virtual machines as they move fromphysical server to physical server and enables the use of third partyvirtual switches to extend familiar physical network features andcontrols to virtual networks.

Additional features provided by the DVS 304 include, simplifiedprovisioning and administration of virtual networking across many hostsand clusters through a centralized interface, simplified end-to-endphysical and virtual network management through third-party virtualswitch extensions, enhanced provisioning and traffic managementcapabilities through private VLAN support and bi-directional virtualmachine rate-limiting, enhanced security and monitoring for virtualmachines migrations, prioritized controls between different traffictypes, and/or load-based dynamic adjustment across a team of physicaladapters on the distributed virtual switch.

FIG. 4 depicts a user interface for managing a distributed virtualswitch (DVS), according to one embodiment of the invention. As shown, aDVS node 402 represents the DVS. Virtual adapters, e.g., softwareconstructs included within one or more VMs, are located to the left 404of the DVS node 402, and physical adapters, e.g., associated with one ormore physical NICs included in one or more host computers, are locatedto the right 406 of the DVS node 402.

In one embodiment, the one or more physical NICs included in the one ormore host computers can be organized into “uplinks,” also referred to as“uplink ports.” An uplink is a set of one or more physical NICs thatconnect to one or more VMs organized in a virtual network, or VLAN. Asshown in the example in FIG. 4, the physical NICs are divided into fouruplinks: Uplink 1, Uplink 2, Uplink 3, and Uplink 4. Uplink 1 includestwo physical NICs, Uplinks 2 and 3 include one physical NIC, and Uplink4 includes zero physical NICs. The two physical NICs included in Uplink1 are both named “vmnic 1.” In one example, one of the physical NICsincluded in Uplink 1 is included in a first host computer, and the otherphysical NIC included in Uplink 1 is included in a second host computer.

Embodiments of the invention provide a user interface for managing thephysical NICs included in each of the uplinks. FIG. 5 is a screenshot ofa user interface for managing the physical Network Interface Cards(NICs) associated with each of one or more uplinks, according to oneembodiment of the invention. The user interface can include a window 502that illustrates a high level organization of the DVS 504 and theuplinks 506. In the example shown, there are four uplinks connected tothe DVS 504.

In one embodiment, the user interface shown in FIG. 5 conveys to theuser the physical NICs included in a particular host computer that havebeen assigned to the one or more uplinks. As shown, physical NIC“vmnic1” has been assigned to Uplink Port 1, physical NIC “vmnic2” hasbeen assigned to Uplink Port 3, and physical NIC “vmnic3” has beenassigned to Uplink Port 4, where each of the physical NIC is included inthe same host computer. In the example shown, no physical NICs have beenassigned to Uplink Port 2. The user can select a link 508 associatedwith Uplink Port 2 to assign one of the physical NICs included in thehost computer to Uplink Port 2. Accordingly, the user interface providesa mechanism for the user to quickly ascertain whether any of the uplinkshave not yet been assigned a physical NIC, as well as a mechanism toassign a physical NIC to the uplink. In addition, the user interfaceincludes remove links 510 that, when selected, remove an association ofa physical NIC to the corresponding uplink.

The user interface shown in FIG. 5 also includes a details portion 512.When a user selects a currently-assigned physical NIC, the details ofthe physical NIC are shown in the details portion 512. In the exampleshown, the user has selected physical NIC “vmnic1,” included within thehighlighted box. The details of physical NIC “vmnic1,” including thename, make and model, driver version, status, and associated IPaddresses, are shown in the details portion 512.

Referring back to FIG. 4, a user can select one of the virtual adaptersor one of the physical adapters, and the VI client causes the paththrough the DVS node 402 to be highlighted. Highlighting the path allowsthe user to visualize the traffic between the VMs and the physical NICs,port usage, and/or status. These visualizations can be useful fortroubleshooting.

As described, FIG. 4 illustrates a user interface that is organized byuplink port. In another embodiment, the user interface can be organizedby host computer. FIG. 6 is a screenshot of a user interface for thephysical NICs associated with each of one or more uplinks organized byhost computer, according to one embodiment of the invention. As shown, aset of VMs 606 is connected to the DVS 602, which is connected toseveral host computers 604-1, 604-2, 604-3, 604-4, 604-5. Each hostcomputer can include one or more adapters, i.e., physical NICs. Asshown, host computer 604-2 includes three physical NICs. Two of thephysical NICs have active status and one physical NIC has standbystatus. The user interface shown in FIG. 6 allows the user to visualizethe various physical NICs and manage the status of the physical NICs.

In yet another embodiment, the DVS architecture can be displayed in auser interface that shows the “status” of the various VMs connected tothe DVS switch. FIG. 7 is a screenshot of a user interface for managinga DVS that includes the status of the various VMs connected to the DVSswitch, according to one embodiment of the invention. As shown, a DVS702 is connected to one or more hosts 704 and one or more VM networks706. Within each VM network, each VM is displayed as a box. The boxescorresponding to the various VMs can be color coded based on the statusof the VM. In one embodiment, the status of the VM can be ON, OFF, BAD,or EMPTY. In yet another embodiment, the VMs included in each VM networkcan be organized based on network traffic. In this embodiment, the VMscan be color coded based on how much bandwidth the particular VM isconsuming.

As described above in FIG. 2, some legacy system may be configured withmultiple virtual switches instead of a DVS. Some users may be hesitantto migrate the VMs connected to individual virtual switches to a DVS forfear or causing errors in the network. Embodiments of the inventionprovide a technique and user interface for quickly and safely migratingVMs from individual virtual switches to a DVS.

FIG. 8A is a screenshot of a user interface for migrating VMs fromindividual virtual switches to a DVS, according to one embodiment of theinvention. As shown, the user interface includes an overview 806 of thevirtual networking environment. The user interface also includes astatus bar 802 that indicates the percentage of VMs in the networkingenvironment that have been migrated from individual virtual switches tothe DVS. Displaying the status bar 802 can encourage users to upgrade tothe DVS and allow users to migrate the VMs at their own pace.

The user can select a link 804 to upgrade one or more VMs to the DVS.Selecting the link causes a dialog box to be displayed, as shown in FIG.8B. FIG. 8B is a screenshot of a dialog box 808 for migrating VMs fromindividual virtual switches to a DVS, according to one embodiment of theinvention. As shown, the dialog box 808 can be displayed over the userinterface shown in FIG. 8A. The dialog box can include a list of VMs 810and the corresponding status 812 of the VMs. In one embodiment, thestatus may indicate that a particular VM has already been upgraded tothe DVS or that the VM still remains to be upgraded. The user can selectone or more of the VMs that still remain to be upgraded and can do a“bulk” upgrade to migrate the selected VMs to the DVS by selecting the“Upgrade” link 814. The selected VMs are then automatically migrated tothe DVS.

On some occasions, migrating a VM to the DVS may cause unexpected errorsin the networking environment. Accordingly, the dialog box 808 alsoprovides a mechanism for users to “downgrade” one or more VMs from theDVS back to the individual virtual switches. The user can select one ormore of the VMs that are connected to the DVS and then select the“Downgrade” link 816. The selected VMs are then automatically migratedback to the individual virtual switches.

The user interfaces shown in FIGS. 8A and 8B allow the user to quickly,easily, and safely upgrade VMs from individual virtual switches to aDVS. Using conventional techniques, a user would need to manually modifythe networking parameters of each VM individually to migrate the VM tothe DVS. Users often have difficulty performing this migration quicklyand properly when a large number of VMs are being migrated. Usingembodiments of the invention that provide for a user interface for bulkmigrations, the process of migrating VMs is much simpler and lesserror-prone.

As described above, individual port groups, VM networks, or VMs can haveassociated management policies. Examples of management polices include aload balancing policy (i.e., a policy for managing traffic through anetwork element), a network failover detection policy, a notificationpolicy (e.g., an Address Resolution Protocol (ARP) notification can betransmitted to the physical NIC to update its MAC address lookup table),a rolling failover policy, a rolling failover policy (i.e., a policythat determines what should occur when a failed adapter comes backonline), and/or a failover order policy (i.e., a policy that indicatesthe order in which network adapters should shut down). The variouspolicies can be set at the DVS level or at the physical NIC level, butcan also overridden at the port group level, or even further down at theport level. In one embodiment, a user interface is provided thatdisplays to the user the level at which the policy was set and the levelat which the policy is being overridden.

FIG. 9 is a screenshot of user interface that displays policyinheritance, according to one embodiment of the invention. As shown, theuser has selected to override the network failover detection policy. Forexample, the override may be performed at the port level. When thepolicy is overridden, a dialog box 902 is displayed that displays theparent level at which the policy was originally set. In the exampleshown, the network failover detection policy was originally set at theport group level, e.g., at “port_group1.” Displaying the policyinheritance in this manner allows the user to quickly determine wherethe policy was originally defined. The user can then make adetermination as to whether the override is properly made at the lowerlevel or whether the policy should be changed at the parent level orlevels.

FIG. 10 is a flow diagram of method steps for creating a DVS, accordingto one embodiment of the invention. Persons skilled in the art wouldunderstand that, even though the method 1000 is described in conjunctionwith the systems of FIGS. 1-9, any system configured to perform themethod steps, in any order, is within the scope of embodiments of theinvention.

As shown, the method 1000 begins at step 1002, where a processing unit,such as the processing unit that executes the VI client 106, receives aselection to create a DVS. The selection may be made by a user selectinga link or a button to create a DVS. At step 1004, the processing unitdefines a number of uplink port groups to be included in the DVS. In oneembodiment, at least one uplink port group is automatically created bydefault. The user can also input a user selection to create additionaluplink port groups.

At step 1006, the processor defines which physical adapters included inone or more hosts correspond to the defined uplink port group(s). Agraphical user interface can be displayed that allows the user tomanually select which physical adapters (i.e., physical NICs) includedin the various host computers should be associated with which uplinkport groups. In some embodiments, an uplink profile can be establishedthat automatically associates physical adapters to the uplink portgroups. For example, assume there are four uplink port groups includedin the DVS and four host computers that provide network backing for theDVS. Each host computer may have six physical adapters. An uplinkprofile can be established that provides that one physical adapter fromeach of the four host computers is assigned to each of the four uplinkport groups. Accordingly, each uplink port group would include fourphysical adapters, one from each host computer. Also, each host computerwould have four of six physical adapters assigned to uplink port groups,with two physical adapters available for other purposes.

At step 1008, the processor establishes a connection between a virtualswitch associated with a virtual machine and a physical adapter includedin at least one uplink port group. One or more VMs may be included inthe virtual computing environment. Step 1008 can be repeated for each VMto establish a connection between the VMs and at least one physicaladapter. In some embodiments, a VM can be connected to more than onephysical adapter, providing for additional bandwidth. The plurality ofphysical adapters to which the VM is connected may be included in thesame uplink port group or in different uplink port groups. In someembodiments, the user is not required to manually establish theconnections between the VMs and the physical adapters. Instead, theprocessor automatically connects the VMs to the physical adapters.

FIG. 11 is a flow diagram of method steps for bulk migration of VMs fromindividual switches to a DVS, according to one embodiment of theinvention. Persons skilled in the art would understand that, even thoughthe method 1100 is described in conjunction with the systems of FIGS.1-9, any system configured to perform the method steps, in any order, iswithin the scope of embodiments of the invention.

As shown, the method 1100 begins at step 1102, where a processing unit,such as the processing unit that executes the VI client 106, displays anindication that a portion of the VMs included in a virtual computingenvironment have been migrated from individual switches to a DVS. Inother words, some of the VMs are still using legacy individual virtualswitches. In one embodiment, the indication comprises a status bar, asshown in FIG. 8A. In other embodiments, the indication can be a textualindication (e.g., “21 of 50 VMs need to be migrated to the DVS”). Atstep 1104, the processor receives a user selection to migrate VMs to theDVS. The user selection may be a selection of a link, such as link 804,to migrate or “upgrade” VMs to the DVS.

At step 1106, the processor displays a list of VMs that have not beenmigrated to the DVS. In one embodiment, the list of VMs can be displayedin a separate dialog box, as shown in the example in FIG. 8B. At step1108, the processor receives a user selection of one or more VMs fromthe list. After the one or more VMs have been selected, the user canselect an “Upgrade” or “continue” link, e.g., link 814. At step 1110,the processor migrates the one or more VMs to the DVS. Migrating the oneor more VMs can include changing the parameters of the virtual adaptersincluded in the one or more VMs to correspond to one or more uplinkports associated with one or more host computers that provide physicalnetwork connections for the DVS. Importantly, the process of migratingVMs to the DVS can be performed “in bulk,” where the user does not haveto manually change the network parameters of individual VMs to migratethe VMs to the DVS. Performing the migration in bulk provide a much moreefficient way for the user migrate the VMs to the DVS.

FIG. 12 is a flow diagram of method steps for displaying a graphicalview of the DVS, according to one embodiment of the invention. Personsskilled in the art would understand that, even though the method 1200 isdescribed in conjunction with the systems of FIGS. 1-9, any systemconfigured to perform the method steps, in any order, is within thescope of embodiments of the invention.

As shown, the method 1200 begins at step 1202, where a processing unit,such as the processing unit that executes the VI client 106, displays agraphical node corresponding to a DVS. The graphical node can be arectangular box, as shown in FIG. 4.

At step 1204, the processor displays virtual adapters associated withone or more VMs on one side of the graphical node. For example, thevirtual adapters associated with one or more VMs can be displayed on theleft side of the graphical node. As shown in FIG. 4, the virtualadapters associated with one or more VMs are shown on the left side 404.In one embodiment, the virtual adapters can be organized by networkconnection, e.g., by VLAN.

At step 1204, the processor displays physical adapters associated withone or more host computers on another side of the graphical node. Forexample, the physical adapters associated with one or more hostcomputers can be displayed on the right side of the graphical node. Asshown in FIG. 4, the physical adapters associated with one or more hostcomputers are shown on the right side 406. In one embodiment, thephysical adapters can be organized by uplink port.

At step 1204, the processor displays one or more paths through thegraphical node corresponding to connections between the virtual adaptersand the physical adapters. In some embodiments, the user can selectvarious portions of the display interface to visualize, or “highlight,”portions of the virtual networking environment. For example, if the userselects a virtual adapter, then the corresponding physical adapter, aswell as the path through the graphical node corresponding to the DVS,can be highlighted. If the user selects a physical adapter, then thecorresponding virtual adapters corresponding to one or more VMs, as wellas the path through the graphical node corresponding to the DVS, can behighlighted. If the user selects a portion of a path through the DVS,then the corresponding virtual adapters and physical adapters connectedto the node can be highlighted.

In further embodiments, the graphical view of the DVS can be organizedso that the VMs are displayed arranged by status or bandwidth usage.

In sum, one or more embodiments of the invention provide a userinterface for managing a distributed virtual switch. Virtual networkadapters associated with one or more virtual machines are logicallyconnected to one or more physical network adapters included in one ormore host computers. In one embodiment, the physical network adapterscan be organized in uplink port groups. The user interface provides agraphical overview of the virtual computing environment that allows theuser to visualize the virtual network, including the connections betweenthe virtual network adapters and the uplink port groups. The userinterface also provides a technique for the user to quickly and safelymodify the virtual network to migrate virtual machines from individualvirtual switches to a distributed virtual switch and/or to modify thearrangement of physical network adapters that provide network backingfor the virtual machines.

The various embodiments described herein may employ variouscomputer-implemented operations involving data stored in computersystems. For example, these operations may require physical manipulationof physical quantities usually, though not necessarily, these quantitiesmay take the form of electrical or magnetic signals where they, orrepresentations of them, are capable of being stored, transferred,combined, compared, or otherwise manipulated. Further, suchmanipulations are often referred to in terms, such as producing,identifying, determining, or comparing. Any operations described hereinthat form part of one or more embodiments of the invention may be usefulmachine operations. In addition, one or more embodiments of theinvention also relate to a device or an apparatus for performing theseoperations. The apparatus may be specially constructed for specificrequired purposes, or it may be a general purpose computer selectivelyactivated or configured by a computer program stored in the computer. Inparticular, various general purpose machines may be used with computerprograms written in accordance with the teachings herein, or it may bemore convenient to construct a more specialized apparatus to perform therequired operations.

The various embodiments described herein may be practiced with othercomputer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like.

One or more embodiments of the present invention may be implemented asone or more computer programs or as one or more computer program modulesembodied in one or more computer readable media. The term computerreadable medium refers to any data storage device that can store datawhich can thereafter be input to a computer system computer readablemedia may be based on any existing or subsequently developed technologyfor embodying computer programs in a manner that enables them to be readby a computer. Examples of a computer readable medium include a harddrive, network attached storage (NAS), read-only memory, random-accessmemory (e.g., a flash memory device), a CD (Compact Discs), CD-ROM, aCD-R, or a CD-RW, a DVD (Digital Versatile Disc), a magnetic tape, andother optical and non-optical data storage devices. The computerreadable medium can also be distributed over a network coupled computersystem so that the computer readable code is stored and executed in adistributed fashion.

Although one or more embodiments of the present invention have beendescribed in some detail for clarity of understanding, it will beapparent that certain changes and modifications may be made within thescope of the claims. Accordingly, the described embodiments are to beconsidered as illustrative and not restrictive, and the scope of theclaims is not to be limited to details given herein, but may be modifiedwithin the scope and equivalents of the claims. In the claims, elementsand/or steps do not imply any particular order of operation, unlessexplicitly stated in the claims.

In addition, while described virtualization methods have generallyassumed that virtual machines present interfaces consistent with aparticular hardware system, persons of ordinary skill in the art willrecognize that the methods described may be used in conjunction withvirtualizations that do not correspond directly to any particularhardware system. Virtualization systems in accordance with the variousembodiments, implemented as hosted embodiments, non-hosted embodiments,or as embodiments that tend to blur distinctions between the two, areall envisioned. Furthermore, various virtualization operations may bewholly or partially implemented in hardware. For example, a hardwareimplementation may employ a look-up table for modification of storageaccess requests to secure non-disk data.

Many variations, modifications, additions, and improvements arepossible, regardless the degree of virtualization. The virtualizationsoftware can therefore include components of a host, console, or guestoperating system that performs virtualization functions. Pluralinstances may be provided for components, operations or structuresdescribed herein as a single instance. Finally, boundaries betweenvarious components, operations and data stores are somewhat arbitrary,and particular operations are illustrated in the context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within the scope of the invention(s). Ingeneral, structures and functionality presented as separate componentsin exemplary configurations may be implemented as a combined structureor component. Similarly, structures and functionality presented as asingle component may be implemented as separate components. These andother variations, modifications, additions, and improvements may fallwithin the scope of the appended claims(s).

1. A graphical user interface for a virtualized computing environmentincluding a plurality of host computers, each having one or more virtualmachines running therein and configured with a distributed virtualswitch for managing network resources associated with the one or morevirtual machines, said graphical user interface comprising: a firstsection for organizing the one or more virtual machines running on theplurality of host computers; a second section for organizing one or morephysical network adapters included in the plurality of host computersinto one or more uplink port groups that each define a set of physicalnetwork adapters that provide physical network resources for a set ofvirtual machines; and a third section corresponding to the distributedvirtual switch that illustrates logical connections between the one ormore virtual machines and the one or more uplink port groups.
 2. Thegraphical user interface of claim 1, wherein each uplink port groupincludes at least one physical network adapter from each of theplurality of host computers.
 3. The graphical user interface of claim 1,wherein a first physical network adapter is automatically associatedwith a first uplink port group based on an uplink profile that defineswhich physical network adapters are assigned to which uplink port group.4. The graphical user interface of claim 1, further comprising a fourthsection that allows a user to modify which physical network adapters areassociated with which uplink port groups.
 5. The graphical userinterface of claim 1, further including a fourth section that includesan indication that one or more virtual machines are not logicallyconnected to the distributed virtual switch.
 6. The graphical userinterface of claim 5, wherein the indication is a status bar or textualindication.
 7. The graphical user interface of claim 5, furtherincluding a fifth section that includes a list of the one or morevirtual machines that are not logically connected to the distributedvirtual switch, wherein a user can select a set of virtual machines fromthe list of one or more virtual machines and cause the virtual machinesincluded in the set of virtual machines to become logically connected tothe distributed virtual switch.
 8. The graphical user interface of claim1, wherein a selection of a first virtual machine from the first sectioncauses one or more physical network adapters included in the secondsection that are logically connected to the first virtual machine to bedisplayed with visual distinction.
 9. The graphical user interface ofclaim 1, wherein a selection of a first physical network adapter fromthe second section causes one or more virtual machines included in thefirst section that are logically connected to the first physical networkadapter to be displayed with visual distinction.
 10. A non-transitorycomputer-readable storage medium comprising instructions that, whenexecuted in a computing device, enable a graphical user interface to bedisplayed, wherein the graphical user interface is for a virtualizedcomputing environment including a plurality of host computers, eachhaving one or more virtual machines running therein and configured witha distributed virtual switch for managing network resources associatedwith the one or more virtual machines, said graphical user interfacecomprising: a first section for organizing the one or more virtualmachines running on the plurality of host computers; a second sectionfor organizing one or more physical network adapters included in theplurality of host computers into one or more uplink port groups thateach define a set of physical network adapters that provide physicalnetwork resources for a set of virtual machines; and a third sectioncorresponding to the distributed virtual switch that illustrates logicalconnections between the one or more virtual machines and the one or moreuplink port groups.
 11. The computer-readable storage medium of claim10, wherein each uplink port group includes at least one physicalnetwork adapter from each of the plurality of host computers.
 12. Thecomputer-readable storage medium of claim 10, wherein a first physicalnetwork adapter is automatically associated with a first uplink portgroup based on an uplink profile that defines which physical networkadapters are assigned to which uplink port group.
 13. Thecomputer-readable storage medium of claim 10, wherein the graphical userinterface further includes a fourth section that allows a user to modifywhich physical network adapters are associated with which uplink portgroups.
 14. The computer-readable storage medium of claim 10, whereinthe graphical user interface further includes a fourth section thatincludes an indication that one or more virtual machines are notlogically connected to the distributed virtual switch.
 15. Thecomputer-readable storage medium of claim 14, wherein the indication isa status bar or textual indication.
 16. The computer-readable storagemedium of claim 14, further including a fifth section that includes alist of the one or more virtual machines that are not logicallyconnected to the distributed virtual switch, wherein a user can select aset of virtual machines from the list of one or more virtual machinesand cause the virtual machines included in the set of virtual machinesto become logically connected to the distributed virtual switch.
 17. Thecomputer-readable storage medium of claim 10, wherein a selection of afirst virtual machine from the first section causes one or more physicalnetwork adapters included in the second section that are logicallyconnected to the first virtual machine to be displayed with visualdistinction.
 18. The computer-readable storage medium of claim 10,wherein a selection of a first physical network adapter from the secondsection causes one or more virtual machines included in the firstsection that are logically connected to the first physical networkadapter to be displayed with visual distinction.
 19. A method forconfiguring a virtualized computing environment including a plurality ofhost computers, each having one or more virtual machines running thereinand configured with a distributed virtual switch for managing networkresources associated with the one or more virtual machines, said methodcomprising: designating one or more uplink port groups to be associatedwith the distributed virtual switch, wherein each of the one or moreuplink port groups provides physical network resources for a set ofvirtual machines; designating one or more physical network adaptersincluded in the plurality of host computers to be associated with eachof the one or more uplink port groups; and establishing a logicalconnection between one or more virtual machines executing on theplurality of host computers and the one or more uplink port groups. 20.The method of claim 19, further comprising: modifying a managementpolicy setting of a first physical network adapter included in a firstuplink port group; and causing an indication that said management policysetting was previously set at an uplink port group level to bedisplayed.